This invention relates to the field of data processing systems. More particularly, this invention relates to the disposition and relationship of an accelerator to the other elements within a data processing system.
It is known to provide data processing systems including accelerator units operable to accelerate the execution of processing tasks (e.g. standalone accelerators for an entire function) as well as accelerators for particular sequences of individual program instructions corresponding to computational subgraphs. As an example, accelerators may be provided which are targeted by special purpose instructions added to the instruction set to perform particular encryption or decryption processing operations which would otherwise require a sequence of individual program instructions to accomplish. One problem with the approach of adding special purpose accelerators for particular computational subgraphs is that the effort in designing, testing and validating those accelerators must be repeated whenever a different form of computational subgraph is identified for acceleration. Furthermore, the use of special purpose instructions in place of the instructions which would otherwise form the computational subgraph renders the program code incompatible with systems which do not include the special purpose accelerator. Thus, additional effort must be expended in writing and testing individual versions of a computer program to operate on different hardware platforms.